{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "iNx2ze3Cfuh5"
      },
      "source": [
        "<div dir=\"rtl\" align=\"center\">\n",
        "<font face=\"XB Zar\" size=5>\n",
        "    <font face=\"IranNastaliq\" size=5>\n",
        "      به نام خدا\n",
        "    </font>\n",
        "    <br>\n",
        "    <font size=3>\n",
        "      دانشگاه صنعتی شریف - دانشکده مهندسی کامپیوتر\n",
        "    </font>\n",
        "    <br>\n",
        "    <font color=blue size=5>\n",
        "      مقدمه‌ای بر یادگیری ماشین\n",
        "    </font>\n",
        "    <br>\n",
        "    <hr/>\n",
        "    <font color=red size=6>\n",
        "      فصل چهارم: مدل‌های یادگیری ماشین برای داده‌های جدول\n",
        "    </font>\n",
        "    <br>\n",
        "      نویسندگان:‌ امیدرضا حیدری\n",
        "    <hr>\n",
        "<br>\n",
        "  <div align=\"right\">\n",
        "  <font color=\"red\" size=5>فهرست مطالب</font>\n",
        "\t<ul>\n",
        "    <li>\n",
        "\t\t  <a href=\"#dataset\">\n",
        "        آشنایی با دیتاست\n",
        "        <ul>\n",
        "          <li>\n",
        "            <a href=\"#columns\">\n",
        "              آشنایی با ستون های دیتاست\n",
        "            </a>\n",
        "          </li>\n",
        "          <li>\n",
        "            <a href=\"#preprocessing\">\n",
        "              آماده سازی دیتاست برای پردازش\n",
        "            </a>\n",
        "          </li>\n",
        "        </ul>\n",
        "    </a>\n",
        "\t\t</li>\n",
        "\t\t<li>\n",
        "      <a href=\"#intro\">\n",
        "        مقدمه ای بر روش های\n",
        "        <font face=\"Roboto\">Ensemble</font>\n",
        "      </a>\n",
        "    </li>\n",
        "    <li>\n",
        "    <font face=\"Roboto\">\n",
        "      <a href=\"#voting\">\n",
        "          Majority Voting\n",
        "        </a>\n",
        "    </font>\n",
        "\t\t</li>\n",
        "    <li>\n",
        "      <a href=\"#bagging\">\n",
        "        روش\n",
        "        <font face=\"Roboto\">Bagging</font>\n",
        "      </a>\n",
        "    </li>\n",
        "    <li>\n",
        "      <a href=\"#pasting\">\n",
        "        روش\n",
        "        <font face=\"Roboto\">Pasting</font>\n",
        "      </a>\n",
        "    </li>\n",
        "    <li>\n",
        "      <a href=\"#out-of-bag\">\n",
        "        ارزیابی\n",
        "        <font face=\"Roboto\">Out-of-Bag</font>\n",
        "      </a>\n",
        "    </li>\n",
        "    <li>\n",
        "      <a href=\"#random-forest\">\n",
        "        روش\n",
        "        <font face=\"Roboto\">Random forest</font>\n",
        "      </a>\n",
        "    </li>\n",
        "    <li>\n",
        "      <a href=\"#extera-trees\">\n",
        "        روش\n",
        "        <font face=\"Roboto\">Extera-Trees</font>\n",
        "      </a>\n",
        "\t\t</li>\n",
        "    <li>\n",
        "      <a href=\"#boosting\">\n",
        "        روش\n",
        "        <font face=\"Roboto\">Boosting</font>\n",
        "      </a>\n",
        "      <ul>\n",
        "        <li>\n",
        "          <a href=\"#adaboost\">\n",
        "            الگوریتم\n",
        "            <font face=\"Roboto\">AdaBoost</font>\n",
        "          </a>\n",
        "          <ul>\n",
        "            <li>\n",
        "              <a href=\"#adaboost-SAMME\">\n",
        "                <font face=\"Roboto\">SAMME</font>\n",
        "              </a>\n",
        "            </li>\n",
        "            <li>\n",
        "              <a href=\"#adaboost-SAMME.R\">\n",
        "                <font face=\"Roboto\">SAMME.R</font>\n",
        "              </a>\n",
        "            </li>\n",
        "          </ul>\n",
        "        </li>\n",
        "        <li>\n",
        "          <a href=\"#gradient-boosting\">\n",
        "            الگوریتم\n",
        "            <font face=\"Roboto\">Gradient Boosting</font>\n",
        "          </a>\n",
        "        </li>\n",
        "        <li>\n",
        "          <a href=\"#xg-boost\">\n",
        "            الگوریتم\n",
        "            <font face=\"Roboto\">XGBoost</font>\n",
        "          </a>\n",
        "        </li>\n",
        "        <li>\n",
        "          <a href=\"#early-stopping\">\n",
        "            استفاده از\n",
        "            <font face=\"Roboto\">Early stopping</font>\n",
        "          </a>\n",
        "        </li>\n",
        "        <li>\n",
        "          <a href=\"#cat-boost\">\n",
        "            الگوریتم\n",
        "            <font face=\"Roboto\">CatBoost</font>\n",
        "          </a>\n",
        "        </li>\n",
        "      </ul>\n",
        "    </li>\n",
        "    <li>\n",
        "      <a href=\"#stacking\">\n",
        "        روش                    \n",
        "        <font face=\"Roboto\">Stacking</font>\n",
        "      </a>\n",
        "    </li>\n",
        "        <li>\n",
        "      <a href=\"#multi-layer-stacking\">\n",
        "        روش                    \n",
        "        <font face=\"Roboto\">Multi-layer Stacking</font>\n",
        "      </a>\n",
        "    </li>\n",
        "    </div>\n",
        "</font>\n",
        "</div>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "sIGyifOmnOYc"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"dataset\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        آشنایی با دیتاست\n",
        "      </font>\n",
        "      <hr />\n",
        "      دیتاستی که در این قسمت از آن استفاده خواهد شد، دیتاست مربوط به یک کمپین بازاریابی یک بانک در کشور پرتغال است که در سایت\n",
        "      <a href=\"https://www.kaggle.com/\">\n",
        "        <font face=\"Roboto\">\n",
        "          Kaggle\n",
        "        </font>\n",
        "      </a>\n",
        "      منتشر شده است.\n",
        "      همچنین از لینک زیر می توان به دیتاست مربوط دسترسی پیدا کرد:\n",
        "      <br />\n",
        "      <div dir=ltr>\n",
        "        <a href=\"https://www.kaggle.com/datasets/krantiswalke/bankfullcsv\">\n",
        "          <font face=\"Roboto\">\n",
        "            https://www.kaggle.com/datasets/krantiswalke/bankfullcsv\n",
        "          </font>\n",
        "        </a>\n",
        "      </div>\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "id": "d5cbzOzxego6"
      },
      "outputs": [],
      "source": [
        "import numpy as np\n",
        "import pandas as pd\n",
        "import seaborn as sns\n",
        "import matplotlib.pyplot as plt"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "metadata": {
        "id": "D_tjVmTl0WUs"
      },
      "outputs": [],
      "source": [
        "dataset_url = \"https://raw.githubusercontent.com/asharifiz/Introduction_to_Machine_Learning/main/Jupyter_Notebooks/Chapter_04_Tabular_Data_Models/Dataset/bank-full.csv\"\n",
        "df = pd.read_csv(dataset_url)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "BmZv9X3O0cxg"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"columns\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        آشنایی با ستون های دیتاست\n",
        "      </font>\n",
        "      <hr />\n",
        "      دیتاست شامل 17 ستون می باشد:\n",
        "      <ol>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">Age: </font>\n",
        "          سن افراد\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">job: </font>\n",
        "          نوع شغل افراد که شامل یکی از مقدار زیر است:\n",
        "          <ul>\n",
        "            <font face=\"Roboto\">\n",
        "              <li>\n",
        "                admin.\n",
        "              </li>\n",
        "              <li>\n",
        "                bluecollar\n",
        "              </li>\n",
        "              <li>\n",
        "                entrepreneur\n",
        "              </li>\n",
        "              <li>\n",
        "                housemaid\n",
        "              </li>\n",
        "              <li>\n",
        "                management\n",
        "              </li>\n",
        "              <li>\n",
        "                retired\n",
        "              </li>\n",
        "              <li>\n",
        "                selfemployed\n",
        "              </li>\n",
        "              <li>\n",
        "                services\n",
        "              </li>\n",
        "              <li>\n",
        "                student\n",
        "              </li>\n",
        "              <li>\n",
        "                technician\n",
        "              </li>\n",
        "              <li>\n",
        "                unemployed\n",
        "              </li>\n",
        "              <li>\n",
        "                unknown\n",
        "              </li>\n",
        "            </font>\n",
        "          </ul>\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">marital: </font>\n",
        "          وضعیت تاهل افراد که شامل یکی از مقدار زیر است:\n",
        "          <ul>\n",
        "            <font face=\"Roboto\">\n",
        "              <li>\n",
        "                divorced\n",
        "              </li>\n",
        "              <li>\n",
        "                married\n",
        "              </li>\n",
        "              <li>\n",
        "                single\n",
        "              </li>\n",
        "              <li>\n",
        "                unknown\n",
        "              </li>\n",
        "            </font>\n",
        "          </ul>\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">education: </font>\n",
        "          وضعیت تحصیلی افراد که شامل یکی از مقادیر زیر است:\n",
        "          <ul>\n",
        "            <font face=\"Roboto\">\n",
        "              <li>\n",
        "                basic.4y\n",
        "              </li>\n",
        "              <li>\n",
        "                basic.6y\n",
        "              </li>\n",
        "              <li>\n",
        "                basic.9y\n",
        "              </li>\n",
        "              <li>\n",
        "                high.school\n",
        "              </li>\n",
        "              <li>\n",
        "                illiterate\n",
        "              </li>\n",
        "              <li>\n",
        "                professional.course\n",
        "              </li>\n",
        "              <li>\n",
        "                university.degree\n",
        "              </li>\n",
        "              <li>\n",
        "                unknown\n",
        "              </li>\n",
        "            </font>\n",
        "          </ul>\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">default: </font>\n",
        "          به صورت پیشفرض کردیت دارد؟\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">balance: </font>\n",
        "          میانگین موجودی سالانه\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">housing: </font>\n",
        "          شخص دارای وام مسکن است یا خیر\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">contact: </font>\n",
        "          روش ارتباط با مشتری که شامل یکی از موارد زیر است:\n",
        "          <ul>\n",
        "            <font face=\"Roboto\">\n",
        "              <li>\n",
        "                cellular\n",
        "              </li>\n",
        "              <li>\n",
        "                telephone\n",
        "              </li>\n",
        "            </font>\n",
        "          </ul>\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">day: </font>\n",
        "          روز آخرین ارتباط\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">month: </font>\n",
        "          ماه آخرین ارتباط که شامل یکی از موارد زیر است:\n",
        "          <ul>\n",
        "            <font face=\"Roboto\">\n",
        "              <li>\n",
        "                jan\n",
        "              </li>\n",
        "              <li>\n",
        "                feb\n",
        "              </li>\n",
        "              <li>\n",
        "                mar\n",
        "              </li>\n",
        "              <li>\n",
        "                apr\n",
        "              </li>\n",
        "              <li>\n",
        "                may\n",
        "              </li>\n",
        "              <li>\n",
        "                jun\n",
        "              </li>\n",
        "              <li>\n",
        "                jul\n",
        "              </li>\n",
        "              <li>\n",
        "                aug\n",
        "              </li>\n",
        "              <li>\n",
        "                sep\n",
        "              </li>\n",
        "              <li>\n",
        "                oct\n",
        "              </li>\n",
        "              <li>\n",
        "                nov\n",
        "              </li>\n",
        "              <li>\n",
        "                dec\n",
        "              </li>\n",
        "            </font>\n",
        "          </ul>\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">duration: </font>\n",
        "          مدت زمان آخرین ارتباط که واحد آن ثانیه است\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">campaign: </font>\n",
        "           تعداد ارتباط با مشتری برای این کمپین\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">pdays: </font>\n",
        "          تعداد روزهای گذشته شده از آخرین کمپینی که مشتری در آن شرکت کرده است(اگر این فیلد 999 باشد به این معنی است که مشتری قبلا با هیچ کمپینی ارتباط نداشته است)\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">previous: </font>\n",
        "          تعداد ارتباط با مشتری برای کمپین های قبلی\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">poutcome: </font>\n",
        "          نتیجه کمپین قبل که یکی از موارد زیر است:\n",
        "          <ul>\n",
        "            <font face=\"Roboto\">\n",
        "              <li>\n",
        "                failure\n",
        "              </li>\n",
        "              <li>\n",
        "                nonexistent\n",
        "              </li>\n",
        "              <li>\n",
        "                success\n",
        "              </li>\n",
        "            </font>\n",
        "          </ul>\n",
        "        </li>\n",
        "        <li>\n",
        "          <font face=\"Roboto\">target: </font>\n",
        "          آیا مشتری در کمپین فعلی عضو شده یا خیر\n",
        "        </li>\n",
        "      </ol>\n",
        "  </font>\n",
        "  </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 143
        },
        "id": "FWaKYE6Zego-",
        "outputId": "b342e72e-3c45-4e66-9a86-0ebb964a8b59"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   age           job  marital  education default  balance housing loan  \\\n",
              "0   58    management  married   tertiary      no     2143     yes   no   \n",
              "1   44    technician   single  secondary      no       29     yes   no   \n",
              "2   33  entrepreneur  married  secondary      no        2     yes  yes   \n",
              "\n",
              "   contact  day month  duration  campaign  pdays  previous poutcome Target  \n",
              "0  unknown    5   may       261         1     -1         0  unknown     no  \n",
              "1  unknown    5   may       151         1     -1         0  unknown     no  \n",
              "2  unknown    5   may        76         1     -1         0  unknown     no  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-083d0c73-c2d9-4704-9be5-ccd7171b015e\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>age</th>\n",
              "      <th>job</th>\n",
              "      <th>marital</th>\n",
              "      <th>education</th>\n",
              "      <th>default</th>\n",
              "      <th>balance</th>\n",
              "      <th>housing</th>\n",
              "      <th>loan</th>\n",
              "      <th>contact</th>\n",
              "      <th>day</th>\n",
              "      <th>month</th>\n",
              "      <th>duration</th>\n",
              "      <th>campaign</th>\n",
              "      <th>pdays</th>\n",
              "      <th>previous</th>\n",
              "      <th>poutcome</th>\n",
              "      <th>Target</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>58</td>\n",
              "      <td>management</td>\n",
              "      <td>married</td>\n",
              "      <td>tertiary</td>\n",
              "      <td>no</td>\n",
              "      <td>2143</td>\n",
              "      <td>yes</td>\n",
              "      <td>no</td>\n",
              "      <td>unknown</td>\n",
              "      <td>5</td>\n",
              "      <td>may</td>\n",
              "      <td>261</td>\n",
              "      <td>1</td>\n",
              "      <td>-1</td>\n",
              "      <td>0</td>\n",
              "      <td>unknown</td>\n",
              "      <td>no</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>44</td>\n",
              "      <td>technician</td>\n",
              "      <td>single</td>\n",
              "      <td>secondary</td>\n",
              "      <td>no</td>\n",
              "      <td>29</td>\n",
              "      <td>yes</td>\n",
              "      <td>no</td>\n",
              "      <td>unknown</td>\n",
              "      <td>5</td>\n",
              "      <td>may</td>\n",
              "      <td>151</td>\n",
              "      <td>1</td>\n",
              "      <td>-1</td>\n",
              "      <td>0</td>\n",
              "      <td>unknown</td>\n",
              "      <td>no</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>33</td>\n",
              "      <td>entrepreneur</td>\n",
              "      <td>married</td>\n",
              "      <td>secondary</td>\n",
              "      <td>no</td>\n",
              "      <td>2</td>\n",
              "      <td>yes</td>\n",
              "      <td>yes</td>\n",
              "      <td>unknown</td>\n",
              "      <td>5</td>\n",
              "      <td>may</td>\n",
              "      <td>76</td>\n",
              "      <td>1</td>\n",
              "      <td>-1</td>\n",
              "      <td>0</td>\n",
              "      <td>unknown</td>\n",
              "      <td>no</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-083d0c73-c2d9-4704-9be5-ccd7171b015e')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-083d0c73-c2d9-4704-9be5-ccd7171b015e button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-083d0c73-c2d9-4704-9be5-ccd7171b015e');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ]
          },
          "metadata": {},
          "execution_count": 3
        }
      ],
      "source": [
        "df.head(3)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 300
        },
        "id": "Vxei2ek5egpB",
        "outputId": "ad6ad634-f9d3-47bd-a365-2f02d5a747d4"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                age        balance           day      duration      campaign  \\\n",
              "count  45211.000000   45211.000000  45211.000000  45211.000000  45211.000000   \n",
              "mean      40.936210    1362.272058     15.806419    258.163080      2.763841   \n",
              "std       10.618762    3044.765829      8.322476    257.527812      3.098021   \n",
              "min       18.000000   -8019.000000      1.000000      0.000000      1.000000   \n",
              "25%       33.000000      72.000000      8.000000    103.000000      1.000000   \n",
              "50%       39.000000     448.000000     16.000000    180.000000      2.000000   \n",
              "75%       48.000000    1428.000000     21.000000    319.000000      3.000000   \n",
              "max       95.000000  102127.000000     31.000000   4918.000000     63.000000   \n",
              "\n",
              "              pdays      previous  \n",
              "count  45211.000000  45211.000000  \n",
              "mean      40.197828      0.580323  \n",
              "std      100.128746      2.303441  \n",
              "min       -1.000000      0.000000  \n",
              "25%       -1.000000      0.000000  \n",
              "50%       -1.000000      0.000000  \n",
              "75%       -1.000000      0.000000  \n",
              "max      871.000000    275.000000  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-a6dd63a5-853c-442f-adf5-0f73a7b7b353\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>age</th>\n",
              "      <th>balance</th>\n",
              "      <th>day</th>\n",
              "      <th>duration</th>\n",
              "      <th>campaign</th>\n",
              "      <th>pdays</th>\n",
              "      <th>previous</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>count</th>\n",
              "      <td>45211.000000</td>\n",
              "      <td>45211.000000</td>\n",
              "      <td>45211.000000</td>\n",
              "      <td>45211.000000</td>\n",
              "      <td>45211.000000</td>\n",
              "      <td>45211.000000</td>\n",
              "      <td>45211.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>mean</th>\n",
              "      <td>40.936210</td>\n",
              "      <td>1362.272058</td>\n",
              "      <td>15.806419</td>\n",
              "      <td>258.163080</td>\n",
              "      <td>2.763841</td>\n",
              "      <td>40.197828</td>\n",
              "      <td>0.580323</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>std</th>\n",
              "      <td>10.618762</td>\n",
              "      <td>3044.765829</td>\n",
              "      <td>8.322476</td>\n",
              "      <td>257.527812</td>\n",
              "      <td>3.098021</td>\n",
              "      <td>100.128746</td>\n",
              "      <td>2.303441</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>min</th>\n",
              "      <td>18.000000</td>\n",
              "      <td>-8019.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>-1.000000</td>\n",
              "      <td>0.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>25%</th>\n",
              "      <td>33.000000</td>\n",
              "      <td>72.000000</td>\n",
              "      <td>8.000000</td>\n",
              "      <td>103.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>-1.000000</td>\n",
              "      <td>0.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>50%</th>\n",
              "      <td>39.000000</td>\n",
              "      <td>448.000000</td>\n",
              "      <td>16.000000</td>\n",
              "      <td>180.000000</td>\n",
              "      <td>2.000000</td>\n",
              "      <td>-1.000000</td>\n",
              "      <td>0.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>75%</th>\n",
              "      <td>48.000000</td>\n",
              "      <td>1428.000000</td>\n",
              "      <td>21.000000</td>\n",
              "      <td>319.000000</td>\n",
              "      <td>3.000000</td>\n",
              "      <td>-1.000000</td>\n",
              "      <td>0.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>max</th>\n",
              "      <td>95.000000</td>\n",
              "      <td>102127.000000</td>\n",
              "      <td>31.000000</td>\n",
              "      <td>4918.000000</td>\n",
              "      <td>63.000000</td>\n",
              "      <td>871.000000</td>\n",
              "      <td>275.000000</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a6dd63a5-853c-442f-adf5-0f73a7b7b353')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-a6dd63a5-853c-442f-adf5-0f73a7b7b353 button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-a6dd63a5-853c-442f-adf5-0f73a7b7b353');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ]
          },
          "metadata": {},
          "execution_count": 4
        }
      ],
      "source": [
        "df.describe()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "-rUt-7j7egpD",
        "outputId": "9ebc1da4-ec4e-454f-8de0-f75e8e5075ba"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "<class 'pandas.core.frame.DataFrame'>\n",
            "RangeIndex: 45211 entries, 0 to 45210\n",
            "Data columns (total 17 columns):\n",
            " #   Column     Non-Null Count  Dtype \n",
            "---  ------     --------------  ----- \n",
            " 0   age        45211 non-null  int64 \n",
            " 1   job        45211 non-null  object\n",
            " 2   marital    45211 non-null  object\n",
            " 3   education  45211 non-null  object\n",
            " 4   default    45211 non-null  object\n",
            " 5   balance    45211 non-null  int64 \n",
            " 6   housing    45211 non-null  object\n",
            " 7   loan       45211 non-null  object\n",
            " 8   contact    45211 non-null  object\n",
            " 9   day        45211 non-null  int64 \n",
            " 10  month      45211 non-null  object\n",
            " 11  duration   45211 non-null  int64 \n",
            " 12  campaign   45211 non-null  int64 \n",
            " 13  pdays      45211 non-null  int64 \n",
            " 14  previous   45211 non-null  int64 \n",
            " 15  poutcome   45211 non-null  object\n",
            " 16  Target     45211 non-null  object\n",
            "dtypes: int64(7), object(10)\n",
            "memory usage: 5.9+ MB\n"
          ]
        }
      ],
      "source": [
        "df.info()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "7u-9szEQ1UST"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"preprocessing\">\n",
        "    <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>آماده سازی دیتاست برای پردازش</font>\n",
        "      <hr />\n",
        "      قدم اول برای آماده سازی دیتاست تبدیل مقادیر غیرعددی به مقادیر عددی است که بتوان در مدل ها استفاده کرد. در این مرحله از\n",
        "      <font face=\"Roboto\">Label Encoder</font>\n",
        "      استفاده می شود:\n",
        "    </font>\n",
        "  </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "metadata": {
        "id": "Rh6R6bEzegpF"
      },
      "outputs": [],
      "source": [
        "from sklearn.preprocessing import LabelEncoder\n",
        "encoder = LabelEncoder()\n",
        "columns_to_encode = ['job', 'marital', 'education', 'month', 'contact', 'poutcome', 'housing', 'loan', 'Target', 'default']\n",
        "for column_to_encode in columns_to_encode:\n",
        "    encoder.fit(np.array(df[column_to_encode]))\n",
        "    df[column_to_encode]=encoder.transform(df[column_to_encode])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "ATlshxW3egpI",
        "outputId": "368aa4e2-0ba7-4e89-c137-3f8b8307572b"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   age  job  marital  education  default  balance  housing  loan  contact  \\\n",
              "0   58    4        1          2        0     2143        1     0        2   \n",
              "1   44    9        2          1        0       29        1     0        2   \n",
              "2   33    2        1          1        0        2        1     1        2   \n",
              "3   47    1        1          3        0     1506        1     0        2   \n",
              "4   33   11        2          3        0        1        0     0        2   \n",
              "\n",
              "   day  month  duration  campaign  pdays  previous  poutcome  Target  \n",
              "0    5      8       261         1     -1         0         3       0  \n",
              "1    5      8       151         1     -1         0         3       0  \n",
              "2    5      8        76         1     -1         0         3       0  \n",
              "3    5      8        92         1     -1         0         3       0  \n",
              "4    5      8       198         1     -1         0         3       0  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-e2e50cf1-15c1-4ab4-a944-026c574d4fee\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>age</th>\n",
              "      <th>job</th>\n",
              "      <th>marital</th>\n",
              "      <th>education</th>\n",
              "      <th>default</th>\n",
              "      <th>balance</th>\n",
              "      <th>housing</th>\n",
              "      <th>loan</th>\n",
              "      <th>contact</th>\n",
              "      <th>day</th>\n",
              "      <th>month</th>\n",
              "      <th>duration</th>\n",
              "      <th>campaign</th>\n",
              "      <th>pdays</th>\n",
              "      <th>previous</th>\n",
              "      <th>poutcome</th>\n",
              "      <th>Target</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>58</td>\n",
              "      <td>4</td>\n",
              "      <td>1</td>\n",
              "      <td>2</td>\n",
              "      <td>0</td>\n",
              "      <td>2143</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>5</td>\n",
              "      <td>8</td>\n",
              "      <td>261</td>\n",
              "      <td>1</td>\n",
              "      <td>-1</td>\n",
              "      <td>0</td>\n",
              "      <td>3</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>44</td>\n",
              "      <td>9</td>\n",
              "      <td>2</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>29</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>5</td>\n",
              "      <td>8</td>\n",
              "      <td>151</td>\n",
              "      <td>1</td>\n",
              "      <td>-1</td>\n",
              "      <td>0</td>\n",
              "      <td>3</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>33</td>\n",
              "      <td>2</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>2</td>\n",
              "      <td>5</td>\n",
              "      <td>8</td>\n",
              "      <td>76</td>\n",
              "      <td>1</td>\n",
              "      <td>-1</td>\n",
              "      <td>0</td>\n",
              "      <td>3</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>47</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>3</td>\n",
              "      <td>0</td>\n",
              "      <td>1506</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>5</td>\n",
              "      <td>8</td>\n",
              "      <td>92</td>\n",
              "      <td>1</td>\n",
              "      <td>-1</td>\n",
              "      <td>0</td>\n",
              "      <td>3</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>33</td>\n",
              "      <td>11</td>\n",
              "      <td>2</td>\n",
              "      <td>3</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>5</td>\n",
              "      <td>8</td>\n",
              "      <td>198</td>\n",
              "      <td>1</td>\n",
              "      <td>-1</td>\n",
              "      <td>0</td>\n",
              "      <td>3</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-e2e50cf1-15c1-4ab4-a944-026c574d4fee')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-e2e50cf1-15c1-4ab4-a944-026c574d4fee button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-e2e50cf1-15c1-4ab4-a944-026c574d4fee');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ]
          },
          "metadata": {},
          "execution_count": 7
        }
      ],
      "source": [
        "df.head()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "WUD6Cb2nhm2H"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"preprocessing\">\n",
        "    <font face=\"XB Zar\" size=4>\n",
        "      قدم بعدی، حذف سطرهایی است که دردسترس نیست:\n",
        "    </font>\n",
        "  </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "GEFXjToAegpK",
        "outputId": "f16bea92-14b7-4276-fbb1-2066b4ca0080"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "<class 'pandas.core.frame.DataFrame'>\n",
            "Int64Index: 45211 entries, 0 to 45210\n",
            "Data columns (total 17 columns):\n",
            " #   Column     Non-Null Count  Dtype\n",
            "---  ------     --------------  -----\n",
            " 0   age        45211 non-null  int64\n",
            " 1   job        45211 non-null  int64\n",
            " 2   marital    45211 non-null  int64\n",
            " 3   education  45211 non-null  int64\n",
            " 4   default    45211 non-null  int64\n",
            " 5   balance    45211 non-null  int64\n",
            " 6   housing    45211 non-null  int64\n",
            " 7   loan       45211 non-null  int64\n",
            " 8   contact    45211 non-null  int64\n",
            " 9   day        45211 non-null  int64\n",
            " 10  month      45211 non-null  int64\n",
            " 11  duration   45211 non-null  int64\n",
            " 12  campaign   45211 non-null  int64\n",
            " 13  pdays      45211 non-null  int64\n",
            " 14  previous   45211 non-null  int64\n",
            " 15  poutcome   45211 non-null  int64\n",
            " 16  Target     45211 non-null  int64\n",
            "dtypes: int64(17)\n",
            "memory usage: 7.2 MB\n"
          ]
        }
      ],
      "source": [
        "colums_have_unknow=['job', 'marital', 'education', 'default', 'housing', 'loan']\n",
        "for colum_has_unknow in colums_have_unknow:\n",
        "    df.drop(df[df[colum_has_unknow] == 'unknow'].index, inplace = True)\n",
        "df.info()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Y3s30a-biJtF"
      },
      "source": [
        "  <div dir=rtl id=\"preprocessing\">\n",
        "    <font face=\"XB Zar\" size=4>\n",
        "      قدم آخر، تقسیم دیتاست به دو قسمت:\n",
        "      <ul>\n",
        "        <font face=\"Roboto\">\n",
        "          <li>\n",
        "            Training\n",
        "          </li>\n",
        "          <li>\n",
        "            Testing\n",
        "          </li>\n",
        "        </font>\n",
        "      </ul>\n",
        "      می باشد که دو قسمت اصلی یادگیری ماشین هستند.\n",
        "    </font>\n",
        "  </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "metadata": {
        "id": "NOGLhxU1egpL"
      },
      "outputs": [],
      "source": [
        "y = df[\"Target\"].copy()\n",
        "x = df.drop(\"Target\", axis=1)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "metadata": {
        "id": "m_BKQ1yuegpP"
      },
      "outputs": [],
      "source": [
        "from sklearn.model_selection import train_test_split\n",
        "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.33, random_state = 42)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "q8c_8eOb0ZU5",
        "outputId": "f2af2e22-3e87-4a17-c72b-4d40d17dd2a1"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1224x1224 with 2 Axes>"
            ],
            "image/png": "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bkpPBdqZJx5465jjYM5/O6XyHm+ReQUwA+gLPANkA3dba5/Y23P3VGQekJpQZB4w4hyYH1DiLDIPGHsoMg9YKXi665Rry6nYX8RZZB4oklFkJlu8ReYBZR+KzJa0r0VmS4q3yDygxFlkHiiaUmQeKOItMg8kKV9kFg1OrdokxoxYlFJ53+M6CWPMzbV+vCz2719i/ybnwlsiIiIiIiKSsva2GH/Xabx6AscAu65OfC7wQbKCEhERERERkdS0xyLTWjsBIHYs5lHW2vLYz/8LzE16dCIiIiIiIpJS4j2tWHug9sFHwdh9IiIiIiIiqSEVz1mRguItMv8BfGCMmRn7eQTOCYBEREREREREqsVVZFprJxljXgEGxe66zFr7afLCEhERERERkVQU91V4rbWfAJ8kMRYREREREZHkMVouuz+k4MX/RERERERE5EClIlNEREREREQSRkWmiIiIiIiIJEzcx2SKiIiIiIikNB2TuV9oJlNEREREREQSRkWmiIiIiIiIJIyKTBEREREREUkYHZMpIiIiIiI/Di4dk7k/aCZTREREREREEkZFpoiIiIiIiCSMlsuKiIiIiMiPg9Ec2/6gLIuIiIiIiEjCqMgUERERERGRhFGRKSIiIiIiIgmjYzJFREREROTHwegSJvtD8otMb4rVsbk5LR1B05WUtXQETZeXYnkur2jpCJouEm3pCJqsZMmXLR1Ck+Qf0bGlQ2iyjfNXtXQITfL4xP4tHUKTXXXPkpYOocke/13flg6hSdIGdG/pEJpu45aWjqDpUux6gqZdq5YOoemitqUjEEkKLZcVERERERGRhFGRKSIiIiIiIgmTYmtZRURERERE9lGKLQNPVZrJFBERERERkYRRkSkiIiIiIiIJo+WyIiIiIiLy46BLmOwXmskUERERERGRhFGRKSIiIiIiIgmjIlNEREREREQSRsdkioiIiIjIj4OOydwvNJMpIiIiIiIiCaMiU0RERERERBJGy2VFREREROTHwaU5tv0h7iLTGHM8cHDt51hr/5GEmERERERERCRFxVVkGmP+CRwKLAEisbstoCJTREREREREqsU7k/kToLe11iYzGBEREREREUlt8RaZy4EOQHESYxEREREREUkeXcJkv9hjkWmMmY2zLDYHWGmM+QAI7HrcWntecsMTERERERGRVLK3mcw/7pcoRERERERE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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "source": [
        "plt.figure(figsize=(17,17))\n",
        "sns.heatmap(data = df.corr(), annot=True, cmap=\"YlOrBr\")\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1ElZ0H5Fg2yw"
      },
      "source": [
        "\n",
        "  <div dir=\"rtl\" id=\"intro\">\n",
        "    <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        مقدمه ای بر روش های\n",
        "        <font face=\"Roboto\">Ensemble</font>\n",
        "      </font>\n",
        "      <hr />\n",
        "       فرض کنید که شما از تعدادی از افراد(به صورت تصادفی) خواسته اید که یک مسئله را حل کرده و به شما تحویل دهند، احتمالا با جمع بندی پاسخ افراد به نتیجه بهتری نسبت به حالتی که از یک نفر(به صورت تصادفی) بخواهید تا این سوال را پاسخ دهد خواهید رسید. به این تئوری\n",
        "       <font face=\"Roboto\">wisdom of the crowd</font>\n",
        "       گفته میشود. در روش های\n",
        "       <font face=\"Roboto\">ensemble</font>\n",
        "       نیز از همین تئوری الهام گرفته و به همین صورت عمل می شود و از ترکیب چند الگوریتم برای بهبود پاسخ استفاده می شود.\n",
        "       </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "H_mnMP_xd-ud"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"voting\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5 face=\"Roboto\">\n",
        "        Majority Voting\n",
        "      </font>\n",
        "      <hr />\n",
        "      فرض کنید شما سه مدل زیر را دارید که هر کدام جداگانه عمل می کنند:\n",
        "      <ul>\n",
        "          <li>\n",
        "            <font face=\"Roboto\">\n",
        "              Logistic Regression:\n",
        "            </font>\n",
        "            با دقت حدودا\n",
        "            <font face=\"Roboto\">\n",
        "              0.8906\n",
        "            </font>\n",
        "          </li>\n",
        "          <li>\n",
        "            <font face=\"Roboto\">\n",
        "              Decision Tree classifier:\n",
        "            </font>\n",
        "            با دقت حدودا\n",
        "            <font face=\"Roboto\">\n",
        "              0.8766\n",
        "            </font>\n",
        "          </li>\n",
        "          <li>\n",
        "            <font face=\"Roboto\">\n",
        "              Support Vector Machine:\n",
        "            </font>\n",
        "            با دقت حدودا\n",
        "            <font face=\"Roboto\">\n",
        "              0.8828\n",
        "            </font>\n",
        "          </li>\n",
        "      </ul>\n",
        "      در حالی که اگر شما برای هر پیش بینی یک رأی‌ گیری میان این مدل ها انجام داده و رأی‌ اکثریت را به عنوان نتیجه بیان کنیم میتوان به دقت حدودی\n",
        "      <font face=\"Roboto\">\n",
        "        0.8909\n",
        "      </font>\n",
        "      دست یابیم که از دقت هر سه مدل به صورت جداگانه بالاتر است.\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "metadata": {
        "id": "8Bo736_PegpR"
      },
      "outputs": [],
      "source": [
        "from sklearn.svm import SVC\n",
        "from sklearn.tree import DecisionTreeClassifier\n",
        "from sklearn.ensemble import VotingClassifier\n",
        "from sklearn.linear_model import LogisticRegression"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "metadata": {
        "id": "bqN_r0hKegpT"
      },
      "outputs": [],
      "source": [
        "log_clf = LogisticRegression(solver='lbfgs', max_iter=30000, random_state = 42)\n",
        "dt_clf = DecisionTreeClassifier(random_state = 42)\n",
        "svm_clf = SVC(random_state = 42)\n",
        "hard_voting_clf = VotingClassifier(estimators=[('lr', log_clf), ('dt', dt_clf), ('svc', svm_clf)])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 14,
      "metadata": {
        "id": "jWDGpwCNegpU"
      },
      "outputs": [],
      "source": [
        "from sklearn.metrics import accuracy_score\n",
        "results = {}\n",
        "for clf in (dt_clf, svm_clf, log_clf):\n",
        "    clf.fit(x_train, y_train)\n",
        "    y_pred = clf.predict(x_test)\n",
        "    results[clf.__class__.__name__] = accuracy_score(y_test, y_pred)\n",
        "    \n",
        "hard_voting_clf.fit(x_train, y_train)\n",
        "y_pred = hard_voting_clf.predict(x_test)\n",
        "results[\"HardVotingClassifier\"] = accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 15,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 428
        },
        "id": "5ubvPCkMY-1Z",
        "outputId": "0ab7e3ae-007d-4e8c-f170-1c2ad0f05eb9"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1008x504 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "source": [
        "plt.figure(figsize=(14, 7))\n",
        "ax = sns.barplot(x=list(results.keys()), y=list(results.values()), palette=\"crest\")\n",
        "ax.set_ylim([min(list(results.values()))-0.002, max(list(results.values()))+0.005])\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "9cOkDJXH7fbE"
      },
      "source": [
        "\n",
        "  <div dir=\"rtl\" id=\"intro\">\n",
        "    <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        استفاده از احتمال مدل ها در رأی‌ گیری\n",
        "        <font face=\"Roboto\">(Soft Voting)</font>\n",
        "      </font>\n",
        "      <hr />\n",
        "      اگر بتوانیم احتمال هر مدل را به دست آوریم. می توانیم به پاسخ هر مدل یک وزن داده(بر اساس نزدیکی پاسخ به احتمال مدل) و بر اساس این وزن ها رأی‌ گیری را انجام دهیم.\n",
        "       </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 16,
      "metadata": {
        "id": "S-vKalbuegpV"
      },
      "outputs": [],
      "source": [
        "svm_clf = SVC(probability=True)\n",
        "soft_voting_clf = VotingClassifier(estimators=[('lr', log_clf), ('rf', dt_clf), ('svc', svm_clf)], voting='soft')\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 17,
      "metadata": {
        "id": "JEtC7VjfegpW"
      },
      "outputs": [],
      "source": [
        "soft_voting_clf.fit(x_train, y_train)\n",
        "y_pred = soft_voting_clf.predict(x_test)\n",
        "results[\"SoftVotingClassifier\"] = accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 18,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 428
        },
        "id": "SqFYQwvLotY-",
        "outputId": "b412b244-e0da-42ca-88b5-cb66c20df83c"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1008x504 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "source": [
        "plt.figure(figsize=(14, 7))\n",
        "ax = sns.barplot(x=list(results.keys()), y=list(results.values()), palette=\"crest\")\n",
        "ax.set_ylim([min(list(results.values()))-0.002, max(list(results.values()))+0.005])\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "fIxcKVZceI7N"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"bagging\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        روش\n",
        "        <font face=\"Roboto\">Bagging</font>\n",
        "      </font>\n",
        "      <hr />\n",
        "      در روش\n",
        "      <font face=\"Roboto\">Bagging</font>\n",
        "       به جای استفاده از چند مدل از روش های مختلف، از چندین مدل یک روش استفاده میکنیم ولی یک زیر مجموعه از داده ها در هر کدام\n",
        "       <font face=\"Roboto\">train</font>\n",
        "        می شود.\n",
        "      در مثال زیر ما 2000 مدل\n",
        "      <font face=\"Roboto\">Decision tree</font>\n",
        "       استفاده میکنیم و در هر مدل از یک مجموعه داده استفاده می کنیم:\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 19,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "LX4hpRReegpZ",
        "outputId": "261e2ed8-34b5-481d-c947-d29dd7f7607a"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.8959785522788204"
            ]
          },
          "metadata": {},
          "execution_count": 19
        }
      ],
      "source": [
        "from sklearn.ensemble import BaggingClassifier\n",
        "bag_clf = BaggingClassifier(DecisionTreeClassifier(), n_estimators=2000, max_samples=400, bootstrap=True, n_jobs=-1)\n",
        "bag_clf.fit(x_train, y_train)\n",
        "y_pred = bag_clf.predict(x_test)\n",
        "accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn.metrics import confusion_matrix\n",
        "def show_confusion_matrix(y_test, y_pred):\n",
        "  clr_plt = sns.light_palette(\"#FF9F29\", reverse=True, as_cmap=True)\n",
        "  cf_matrix = confusion_matrix(y_test, y_pred)\n",
        "  sns.heatmap(cf_matrix/np.sum(cf_matrix), annot=True, fmt='.2%',cmap=clr_plt)  \n",
        "  plt.ylabel('Predicted label')\n",
        "  plt.xlabel('True Label')\n",
        "  plt.show"
      ],
      "metadata": {
        "id": "1gqqR3Pxn0Hn"
      },
      "execution_count": 20,
      "outputs": []
    },
    {
      "cell_type": "code",
      "execution_count": 21,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 279
        },
        "id": "3CCEG4f_Rtf9",
        "outputId": "59fb20e4-411d-444b-d5f8-4c8ca7e83898"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 432x288 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "source": [
        "show_confusion_matrix(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "XyQwxmEweIHB"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"pasting\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        روش\n",
        "        <font face=\"Roboto\">\n",
        "          Pasting\n",
        "        </font>\n",
        "      </font>\n",
        "            <hr />\n",
        "            روش\n",
        "            <font face=\"Roboto\">Pasting</font>\n",
        "            همان روش \n",
        "            <font face=\"Roboto\">Bagging</font>\n",
        "            است با این تفاوت که در روش\n",
        "            <font face=\"Roboto\">Bagging</font>\n",
        "            ویژگی\n",
        "            <font face=\"Roboto\">replacement</font>\n",
        "             را داریم ولی در روش \n",
        "             <font face=\"Roboto\">Pasting</font>\n",
        "            این ویژگی را نداریم (عموما روش\n",
        "            <font face=\"Roboto\">Pasting</font>\n",
        "              برای تعداد بالایی از داده ها استفاده می شود).\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 22,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "U3V5DY3AegpY",
        "outputId": "0df33e52-537f-491d-a7c7-f65603acc6d7"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.8959115281501341"
            ]
          },
          "metadata": {},
          "execution_count": 22
        }
      ],
      "source": [
        "bag_clf = BaggingClassifier(DecisionTreeClassifier(), n_estimators=2000, max_samples=400, bootstrap=False, n_jobs=-1)\n",
        "bag_clf.fit(x_train, y_train)\n",
        "y_pred = bag_clf.predict(x_test)\n",
        "accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 23,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 279
        },
        "id": "iaMEu6JHQJbM",
        "outputId": "e52c7bf5-fbac-4e66-d686-f0fb9f024514"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 432x288 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "source": [
        "show_confusion_matrix(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "s3iyxiqlesox"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"out-of-bag\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        ارزیابی\n",
        "        <font face=\"Roboto\">out-of-bag</font>\n",
        "      </font>\n",
        "      <hr />\n",
        "      در روش\n",
        "      <font face=\"Roboto\">Bagging</font>\n",
        "      ممکن است یک داده در چند مدل استفاده شود در حالی که یک داده در هیچ مدلی استفاده نشود. به همین منظور می توان از دیتاهایی که در هر مدل استفاده نشده است را برای ارزیابی مدل استفاده کرد و نیازی به\n",
        "      <font face=\"Roboto\">validation set</font>\n",
        "      نمی باشد:\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 24,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "iurAcBw-egpa",
        "outputId": "4ff718d7-da4d-492c-e379-166d4ec80527"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "OOB Score: 0.9042289789046252\n",
            "Accuracy Score : 0.9035522788203754\n"
          ]
        }
      ],
      "source": [
        "bag_clf = BaggingClassifier(DecisionTreeClassifier(), n_estimators=2000, bootstrap=True, n_jobs=-1, oob_score=True)\n",
        "bag_clf.fit(x_train, y_train)\n",
        "print(\"OOB Score: \" + str(bag_clf.oob_score_))\n",
        "print(\"Accuracy Score : \"+ str(accuracy_score(y_test, bag_clf.predict(x_test))))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "vQvxedQBezxm"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"random-forest\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        روش\n",
        "        <font face=\"Roboto\">\n",
        "          Random forest\n",
        "        </font>\n",
        "      </font>\n",
        "      <hr />\n",
        "      می توان گفت یک مدل\n",
        "      <font face=\"Roboto\">Random forest</font>\n",
        "      ترکیب چند\n",
        "      <font face=\"Roboto\">Decision Tree</font>\n",
        "      است که معمولا از روش \n",
        "      <font face=\"Roboto\">Bagging</font>\n",
        "      یا\n",
        "      <font face=\"Roboto\">Pasting</font>\n",
        "      در آن ها استفاده می شود:\n",
        "      </font>\n",
        "    </div>\n",
        "$$\n",
        " Random \\ Forest = Bagging \\ Weighted \\ Trees(Replacement=True \\ | \\ False) + Random \\ Feature \\ subsets\n",
        "$$"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 25,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "5D53jguHegpb",
        "outputId": "6b12602d-a5c8-41cd-830a-a535e091e3f7"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.8959115281501341"
            ]
          },
          "metadata": {},
          "execution_count": 25
        }
      ],
      "source": [
        "from sklearn.ensemble import RandomForestClassifier\n",
        "rnd_clf = RandomForestClassifier(n_estimators=500, max_leaf_nodes=16, n_jobs=-1)\n",
        "rnd_clf.fit(x_train, y_train)\n",
        "y_pred_rf = rnd_clf.predict(x_test)\n",
        "accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        " <div dir=rtl>\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        عملکرد بهتر\n",
        "        <font face=\"Roboto\">\n",
        "          Random forest\n",
        "        </font>\n",
        "        نسبت به روش\n",
        "        <font face=\"Roboto\">\n",
        "          Bagging\n",
        "        </font>\n",
        "      </font>\n",
        "    <hr />\n",
        "    <div dir=ltr>\n",
        "      <font face=\"Roboto\">\n",
        "        Upper Bound for the Generalization Error :\n",
        "      </font>\n",
        "    </div>\n",
        "    </font>\n",
        "  </div>\n",
        "$$\n",
        "  PE \\le \\frac {\\overline {P}. (1-S^2)}{S^2}\n",
        "$$\n",
        "<div dir=ltr>\n",
        "  <ul>\n",
        "    <li>PE : Prediction Error</li>\n",
        "    <li>P : Average Correlation Among Trees</li>\n",
        "    <li>S : <b>Strength</b> of Ensemble (; how good the trees are)</li>\n",
        "  </ul>\n",
        "</div>\n",
        "<br>\n",
        " <div dir=rtl id=\"random-forest\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "    در روش\n",
        "        <font face=\"Roboto\">\n",
        "          Bagging\n",
        "        </font>\n",
        "        شباهت درختان به یکدیگر بیشتر بوده ولی به دلیل اینکه در هر گره می توانند همه\n",
        "        <font face=\"Roboto\">\n",
        "          feature\n",
        "        </font>\n",
        "        ها را در نظر بگیرند، عملکرد خوبی دارند.\n",
        "        در طرف مقابل در روش شباهت درختان به یکدیگر کمتر بوده ولی هر گره فقط یک زیرمجموعه از\n",
        "              <font face=\"Roboto\">\n",
        "          feature\n",
        "        </font>\n",
        "      ها را درنظر میگیرد و یک بالانس میان این دو وِیژگی در\n",
        "        <font face=\"Roboto\">\n",
        "          Random forest\n",
        "        </font>\n",
        "      رعایت می شود که منجر به عملکرد بهتر در مقابله با روش\n",
        "        <font face=\"Roboto\">\n",
        "          Bagging\n",
        "        </font>\n",
        "      می شود.\n",
        "    <br />\n",
        "    برای اطلاعات بیشتر می توان به مقاله زیر مراجعه کرد:\n",
        "    <br />\n",
        "    <div dir=ltr>\n",
        "    <font face=\"Roboto\">\n",
        "    <a href=\"https://link.springer.com/content/pdf/10.1023/A:1010933404324.pdf\">Breiman, “Random Forests”, Machine Learning, 45(1), 5-32, 2001</a>\n",
        "    </font>\n",
        "    </div>\n",
        "  </font>\n",
        "</div>"
      ],
      "metadata": {
        "id": "Lb4cC3OMuKo0"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "tlGOKYiQe8YX"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"extera-trees\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        روش\n",
        "        <font face=\"Roboto\">\n",
        "          Extra-Trees\n",
        "        </font>\n",
        "      </font>\n",
        "      <br />\n",
        "      روش\n",
        "      <font face=\"Roboto\">Extra-Trees</font>\n",
        "      همان روش\n",
        "      <font face=\"Roboto\">Random forest</font>\n",
        "      بوده ولی در روش\n",
        "      <font face=\"Roboto\">Extra-Trees</font>\n",
        "      ،\n",
        "      <font face=\"Roboto\">threshold</font>\n",
        "      ها به صورت تصادفی انتخاب شده که زمان اجرا را نسبت به روش\n",
        "      <font face=\"Roboto\">Random forest</font>\n",
        "      کاهش می دهد:\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 26,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "UC4hR71rj83a",
        "outputId": "affeb7e3-3263-46b1-b263-59e4a588eb64"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.8959115281501341"
            ]
          },
          "metadata": {},
          "execution_count": 26
        }
      ],
      "source": [
        "from sklearn.ensemble import ExtraTreesClassifier\n",
        "ex_tree_clf = ExtraTreesClassifier(n_estimators=500)\n",
        "ex_tree_clf.fit(x_train, y_train)\n",
        "y_pred_rf = ex_tree_clf.predict(x_test)\n",
        "accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "0fkIdofkfEuk"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"boosting\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        روش\n",
        "        <font face=\"Roboto\">\n",
        "          Boosting\n",
        "        </font>\n",
        "      </font>\n",
        "      <br />\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KdN35eDjy10z"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"adaboost\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        الگوریتم\n",
        "        <font face=\"Roboto\">\n",
        "          AdaBoost\n",
        "        </font>\n",
        "      </font>\n",
        "      <br />\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "fKUzqCBxfIyq"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"adaboost-SAMME\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        <font face=\"Roboto\">\n",
        "          SAMME\n",
        "        </font>\n",
        "      </font>\n",
        "      <hr />\n",
        "      در روش\n",
        "      <font face=\"Roboto\">SAMME</font>\n",
        "      از چند مدل به صورت متوالی استفاده شده و داده ها برای هر مدل دارای وزن هستند و بعد از پیش بینی بر روی داده های\n",
        "      <font face=\"Roboto\">train</font>\n",
        "      به داده هایی که پیش بینی درستی بر آن ها صورت نگرفته است وزن بالاتری داده شده و داده\n",
        "      <font face=\"Roboto\">train</font>\n",
        "      به مدل بعدی ارسال می شود. این عمل از اولین مدل تا آخرین مدل انجام می شود .تا بتوانی دقت پیش بینی را بالا ببریم.\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 27,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "_wj2-eD8egpc",
        "outputId": "c1271c5b-c93e-4624-9bb3-129c3ba0b812"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.8948391420911528"
            ]
          },
          "metadata": {},
          "execution_count": 27
        }
      ],
      "source": [
        "from sklearn.ensemble import AdaBoostClassifier\n",
        "ada_clf = AdaBoostClassifier(DecisionTreeClassifier(max_depth=1), n_estimators=200, algorithm=\"SAMME\", learning_rate=0.5)\n",
        "ada_clf.fit(x_train, y_train)\n",
        "y_pred = ada_clf.predict(x_test)\n",
        "accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "HUC2SnrEwwb4"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"adaboost-SAMME.R\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        <font face=\"Roboto\">\n",
        "          SAMME.R\n",
        "        </font>\n",
        "      </font>\n",
        "      <hr />\n",
        "      در این روش به جای استفاده از نتایج پیش بینی داده های\n",
        "      <font face=\"Roboto\">train</font>\n",
        "      ، از احتمال مدل برای وزن دهی استفاده می شود که معمولا دقت بالاتری نسبت به روش\n",
        "      <font face=\"Roboto\">SAMME</font>\n",
        "      دارد.\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 28,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "gbx3ONL1egpe",
        "outputId": "e68c8308-90f7-4cec-8bc3-f5899d04bdf6"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.8989276139410187"
            ]
          },
          "metadata": {},
          "execution_count": 28
        }
      ],
      "source": [
        "from sklearn.ensemble import AdaBoostClassifier\n",
        "ada_clf = AdaBoostClassifier(DecisionTreeClassifier(max_depth=1), n_estimators=200, algorithm=\"SAMME.R\", learning_rate=0.5)\n",
        "ada_clf.fit(x_train, y_train)\n",
        "y_pred = ada_clf.predict(x_test)\n",
        "accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "gXYviqGDfRyN"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"gradient-boost\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        الگوریتم\n",
        "        <font face=\"Roboto\">\n",
        "          Gradient Boost\n",
        "        </font>\n",
        "      </font>\n",
        "      <hr />\n",
        "      الگوریتم\n",
        "      <font face=\"Roboto\">Gradient Boost</font>\n",
        "      شبیه به الگوریتم\n",
        "      <font face=\"Roboto\">AdaBoost</font>\n",
        "      عمل می کند با این تفاوت که به جای وزن دهی به داده های\n",
        "      <font face=\"Roboto\">train</font>\n",
        "      هر مدل سعی میکند خطای ایجاد شده در مدل قبلی را برطرف کرده و مدل جدید بدون این خطا ها بسازد. می توان بدون استفاده از\n",
        "      <font face=\"Roboto\">scikit-learn</font>\n",
        "      این الگوریتم با روش زیر پیاده سازی نمود:\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 29,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "yND8xDypegpe",
        "outputId": "e2935499-bb95-4a3b-fdb1-03dfe29898cb"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.8880026809651475"
            ]
          },
          "metadata": {},
          "execution_count": 29
        }
      ],
      "source": [
        "tree_cl1 = DecisionTreeClassifier(max_depth=2, random_state=42)\n",
        "tree_cl1.fit(x_train, y_train)\n",
        "\n",
        "y2 = y_train - tree_cl1.predict(x_train)\n",
        "tree_cl2 = DecisionTreeClassifier(max_depth=2, random_state=42)\n",
        "tree_cl2.fit(x_train, y2)\n",
        "\n",
        "y3 = y2 - tree_cl2.predict(x_train)\n",
        "tree_cl3 = DecisionTreeClassifier(max_depth=2, random_state=42)\n",
        "tree_cl3.fit(x_train, y3)\n",
        "\n",
        "y_pred = sum(tree.predict(x_test) for tree in (tree_cl1, tree_cl2, tree_cl3))\n",
        "accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "tz9tpPXT1K3r"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"gradient-boost\">\n",
        "    <font face=\"XB Zar\" size=4>\n",
        "      همچنین می توان با استفاده از\n",
        "      <font face=\"Roboto\">scikit-learn</font>\n",
        "      الگوریتم\n",
        "      <font face=\"Roboto\">\n",
        "          Gradient Boost\n",
        "      </font>\n",
        "      را به روش زیر پیاده سازی نمود:  \n",
        "    </font>\n",
        "  </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 30,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Y--1L5-Begpe",
        "outputId": "d3a3c8cb-135e-42f0-b653-c7b7905190d9"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.8939678284182305"
            ]
          },
          "metadata": {},
          "execution_count": 30
        }
      ],
      "source": [
        "from sklearn.ensemble import GradientBoostingClassifier\n",
        "gbc = GradientBoostingClassifier(max_depth=2, n_estimators=5, random_state=42, learning_rate=1.0)\n",
        "gbc.fit(x_train, y_train)\n",
        "y_pred = gbc.predict(x_test)\n",
        "accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "t-HV5AHFf1_R"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"early-stopping\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        استفاده از\n",
        "        <font face=\"Roboto\">\n",
        "          Early stopping\n",
        "        </font>\n",
        "      </font>\n",
        "      <hr />\n",
        "      از روش\n",
        "      <font face=\"Roboto\">early stopping</font>\n",
        "      می توان برای یافتن بهترین تعداد مدل ها استفاده کرد تا کمترین \n",
        "      <font face=\"Roboto\">validation error</font>\n",
        "      را داشته باشیم. برای یافتن این عدد میتوان تعداد زیادی مدل\n",
        "      <font face=\"Roboto\">Gradient Boost</font>\n",
        "      با تعداد پیش بینی کننده متفاوت اجرا کرد و مقدار\n",
        "      <font face=\"Roboto\">validation error</font>\n",
        "      در هر کدام کمتر بود را انتخاب کرد:\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 31,
      "metadata": {
        "id": "BOkQXNou4ArD"
      },
      "outputs": [],
      "source": [
        "from sklearn.metrics import mean_squared_error\n",
        "from sklearn.ensemble import GradientBoostingClassifier\n",
        "result={}\n",
        "for count_of_estimators in range(1, 70):\n",
        "  gbc = GradientBoostingClassifier(max_depth=2, n_estimators=count_of_estimators, random_state=42, learning_rate=1.0)\n",
        "  gbc.fit(x_train, y_train)\n",
        "  y_pred = gbc.predict(x_test)\n",
        "  val_error = mean_squared_error(y_test, y_pred)\n",
        "  result[count_of_estimators]=val_error"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 32,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 448
        },
        "id": "0LlGOub-5NXT",
        "outputId": "d0f990da-30c8-4847-f0f7-a114047fd5d2"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1152x504 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "source": [
        "plt.figure(figsize=(16, 7))\n",
        "sns.set(style='dark',)\n",
        "ax = sns.lineplot(x=list(result.keys()), y=list(result.values()))\n",
        "plt.xlabel(\"Number of estimators\")\n",
        "plt.ylabel(\"Validation error\")\n",
        "ax.set_xlim([1, max(list(result.keys()))])\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 33,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ptC71c2LBTp9",
        "outputId": "476c1859-c94d-42ae-f69e-e36ca32bd874"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "The best number for estimators is: 65\n",
            "The minimum value for validation error is: 0.09631367292225201\n"
          ]
        }
      ],
      "source": [
        "print(\"The best number for estimators is: \"+ str(list(result.values()).index(min(list(result.values())))+1))\n",
        "print(\"The minimum value for validation error is: \"+ str(min(list(result.values()))))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "WH4jZxdVAy0o"
      },
      "source": [
        "  <div dir=rtl>\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      به دلیل زمان بر بودن روش گفته شده، می توان با استفاده از پارامتر\n",
        "      <font face=\"Roboto\">warn_start</font>\n",
        "      در\n",
        "      <font face=\"Roboto\">sklearn</font>\n",
        "      می توان درخت های ایجاد شده را ذخیره کرده تا بتوان زمان لازم برای ساخت \n",
        "      تعداد زیادی از مدل کاهش داد. از الگوریتم زیر می توان برای پیدا کردن کمترین\n",
        "      <font face=\"Roboto\">validation error</font>\n",
        "      استفاده کرد(اگر در الگوریتم تا 5 مرحله\n",
        "      <font face=\"Roboto\">validation error</font>\n",
        "      کمتری پیدا نشود الگوریتم متوقف می شود. برای بالا بردن دقت میتوان عدد 5 را عدد بالاتری در نظر گرفت):\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 34,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "jl08tspeegpf",
        "outputId": "3d8dcfc7-1174-4221-a695-7abcb9c56b2c"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "The best n_stimators value is: 10\n"
          ]
        }
      ],
      "source": [
        "gbc = GradientBoostingClassifier(max_depth=2, warm_start = True, random_state=42, learning_rate=1.0)\n",
        "min_val_error = float(\"inf\")\n",
        "error_going_up = 0\n",
        "number_of_steps_to_checks=5\n",
        "for n_estimators in range(1, 70):\n",
        "    gbc.n_estimators = n_estimators\n",
        "    gbc.fit(x_train, y_train)\n",
        "    y_pred = gbc.predict(x_test)\n",
        "    val_error = mean_squared_error(y_test, y_pred)\n",
        "    if val_error < min_val_error:\n",
        "        min_val_error = val_error\n",
        "        error_going_up = 0\n",
        "    else:\n",
        "        error_going_up += 1\n",
        "        if error_going_up == 5:\n",
        "            break\n",
        "gbc.n_estimators = gbc.n_estimators - number_of_steps_to_checks\n",
        "print(\"The best n_stimators value is: \" + str(gbc.n_estimators))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 35,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "MXNKxz6XsSOi",
        "outputId": "aa8c21d5-7382-44b2-bbd0-b2e88bbc8d8f"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "The minimum value for validation error according the above algorithm is: 0.09711796246648793\n"
          ]
        }
      ],
      "source": [
        "gbc = GradientBoostingClassifier(max_depth=2, random_state=42, learning_rate=1.0)\n",
        "gbc.fit(x_train, y_train)\n",
        "y_pred = gbc.predict(x_test)\n",
        "val_error = mean_squared_error(y_test, y_pred)\n",
        "print(\"The minimum value for validation error according the above algorithm is: \" + str(val_error))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "-EfzJWK9faOc"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"xg-boost\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        کتابخانه\n",
        "        <font face=\"Roboto\">\n",
        "          XGBoost\n",
        "        </font>\n",
        "      </font>\n",
        "      <hr />\n",
        "      کتابخانه\n",
        "      <font face=\"Roboto\">XGBoost</font>\n",
        "      یک کتابخانه بر اساس\n",
        "      <font face=\"Roboto\">Gradient Boosting</font>\n",
        "      است که امکان اجرای همزمان\n",
        "      <font face=\"Roboto\">tree boosting</font>\n",
        "      را فراهم میکند.\n",
        "      برای اطلاعات بیشتر می توان به لینک زیر مراجعه کرد:\n",
        "      <br />\n",
        "      <div dir=ltr>\n",
        "          <font face=\"Roboto\">\n",
        "            <a href=\"https://xgboost.readthedocs.io/en/stable/\">https://xgboost.readthedocs.io/en/stable</a>\n",
        "          </font>\n",
        "      </div>\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 36,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "3RsPkEdTegpf",
        "outputId": "9b95f9a9-32e2-4704-aca9-0b0b87fabfc0"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Requirement already satisfied: xgboost in /usr/local/lib/python3.7/dist-packages (0.90)\n",
            "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from xgboost) (1.21.6)\n",
            "Requirement already satisfied: scipy in /usr/local/lib/python3.7/dist-packages (from xgboost) (1.7.3)\n"
          ]
        }
      ],
      "source": [
        "!pip install xgboost"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 37,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "scFJiR3aegpg",
        "outputId": "96715259-a90a-4398-b13a-4ef502aa7f8b"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "XGBClassifier(random_state=42)"
            ]
          },
          "metadata": {},
          "execution_count": 37
        }
      ],
      "source": [
        "from xgboost import XGBClassifier\n",
        "XG_classifier = XGBClassifier(random_state = 42)\n",
        "XG_classifier.fit(x_train, y_train)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 38,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "SxSsSkNgegpg",
        "outputId": "151698f4-e95b-4029-92c7-2d4e2879676e"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.9037533512064343"
            ]
          },
          "metadata": {},
          "execution_count": 38
        }
      ],
      "source": [
        "y_pred = XG_classifier.predict(x_test)\n",
        "accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 39,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 285
        },
        "id": "bkzQ4RI6egpg",
        "outputId": "6498f72b-db54-4ed8-b5fe-dcc2d9beadae"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 432x288 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "show_confusion_matrix(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "tekI3K2jffFo"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"cat-boost\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        کتابخانه\n",
        "        <font face=\"Roboto\">\n",
        "          CatBoost\n",
        "        </font>\n",
        "      </font>\n",
        "      <hr />\n",
        "      کتابخانه\n",
        "      <font face=\"Roboto\">CatBoost</font>\n",
        "      یک کتابخانه بر اساس برای\n",
        "      <font face=\"Roboto\">Gradient Boosting</font>\n",
        "      با استفاده از\n",
        "      <font face=\"Roboto\">Decision Tree</font>\n",
        "      بوده که دارای ویژگی های زیر است:\n",
        "      <ul>\n",
        "      <font face=\"Roboto\">\n",
        "        <li>\n",
        "          Great quality without parameter tuning\n",
        "        </li>\n",
        "        <li>\n",
        "          Categorical features support\n",
        "        </li>\n",
        "        <li>\n",
        "          Fast and scalable GPU version\n",
        "        </li>\n",
        "        <li>\n",
        "          Improved accuracy\n",
        "        </li>\n",
        "        <li>\n",
        "          Fast prediction\n",
        "        </li>\n",
        "        </font>\n",
        "      </ul>\n",
        "      برای اطلاعات بیشتر می توان به لینک زیر مراجعه کرد:\n",
        "      <br />\n",
        "      <div dir=ltr>\n",
        "          <font face=\"Roboto\">\n",
        "            <a href=\"https://catboost.ai\">https://catboost.ai</a>\n",
        "          </font>\n",
        "      </div>\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 40,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "DYAVakcOegph",
        "outputId": "7f3e5c30-b7b4-400d-d62a-9a838941f514"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Collecting catboost\n",
            "  Downloading catboost-1.1-cp37-none-manylinux1_x86_64.whl (76.8 MB)\n",
            "\u001b[K     |████████████████████████████████| 76.8 MB 1.3 MB/s \n",
            "\u001b[?25hRequirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from catboost) (1.15.0)\n",
            "Requirement already satisfied: plotly in /usr/local/lib/python3.7/dist-packages (from catboost) (5.5.0)\n",
            "Requirement already satisfied: graphviz in /usr/local/lib/python3.7/dist-packages (from catboost) (0.10.1)\n",
            "Requirement already satisfied: scipy in /usr/local/lib/python3.7/dist-packages (from catboost) (1.7.3)\n",
            "Requirement already satisfied: numpy>=1.16.0 in /usr/local/lib/python3.7/dist-packages (from catboost) (1.21.6)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from catboost) (3.2.2)\n",
            "Requirement already satisfied: pandas>=0.24.0 in /usr/local/lib/python3.7/dist-packages (from catboost) (1.3.5)\n",
            "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.24.0->catboost) (2022.4)\n",
            "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.24.0->catboost) (2.8.2)\n",
            "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->catboost) (3.0.9)\n",
            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->catboost) (1.4.4)\n",
            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->catboost) (0.11.0)\n",
            "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from kiwisolver>=1.0.1->matplotlib->catboost) (4.1.1)\n",
            "Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.7/dist-packages (from plotly->catboost) (8.1.0)\n",
            "Installing collected packages: catboost\n",
            "Successfully installed catboost-1.1\n"
          ]
        }
      ],
      "source": [
        "!pip install catboost"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zO74hETx3v8t"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"cat-boost-catergorical-features\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        <font face=\"Roboto\">\n",
        "          Categorical Features\n",
        "        </font>\n",
        "        در\n",
        "        <font face=\"Roboto\">\n",
        "          CatBoost\n",
        "        </font>\n",
        "      </font>\n",
        "      <hr />\n",
        "      در کتابخانه\n",
        "      <font face=\"Roboto\">CatBoost</font>\n",
        "      ما می توانیم عمل\n",
        "      <font face=\"Roboto\">encoding</font>\n",
        "      را به\n",
        "      <font face=\"Roboto\">CatBoost</font>\n",
        "      واگذار کنیم:\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 41,
      "metadata": {
        "id": "Em_5WGaj4UQG"
      },
      "outputs": [],
      "source": [
        "df = pd.read_csv(dataset_url)\n",
        "\n",
        "colums_have_unknow=['job', 'marital', 'education', 'default', 'housing', 'loan']\n",
        "for colum_has_unknow in colums_have_unknow:\n",
        "    df.drop(df[df[colum_has_unknow] == 'unknow'].index, inplace = True)\n",
        "\n",
        "y = df[\"Target\"].copy()\n",
        "x = df.drop(\"Target\", axis=1)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 42,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "6A0XIb1zegph",
        "outputId": "610f245b-b955-4867-ecc7-1eb0e829a661"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.8922922252010724"
            ]
          },
          "metadata": {},
          "execution_count": 42
        }
      ],
      "source": [
        "from catboost import CatBoostClassifier\n",
        "\n",
        "cat_features = list(range(0, x.shape[1]))\n",
        "clf = CatBoostClassifier(iterations=5, learning_rate=0.1)\n",
        "clf.fit(x_train, y_train, cat_features=cat_features,  verbose=False)\n",
        "y_pred = clf.predict(x_test)\n",
        "accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 43,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 285
        },
        "id": "emOhSY1Gegph",
        "outputId": "1b440255-e66b-49de-981c-0a6956ae4c1b"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 432x288 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "show_confusion_matrix(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "2LYEgOSImGp8"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"stacking\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        روش\n",
        "        <font face=\"Roboto\">\n",
        "          Stacking\n",
        "        </font>\n",
        "      </font>\n",
        "      <hr />\n",
        "      در روش\n",
        "        <font face=\"Roboto\">Stacking</font>\n",
        "      ما دیتاست را به دو قسمت تقسیم کرده\n",
        "      و قسمت اول را به مدل ها به عنوان ورودی می دهیم. در مثال زیر، مدل های ما شامل سه مدل زیر هستند:\n",
        "      <ul>\n",
        "        <font face=\"Roboto\">\n",
        "          <li>\n",
        "            Random forest\n",
        "          </li>\n",
        "          <li>\n",
        "            Support vector machine\n",
        "          </li>\n",
        "          <li>\n",
        "            k-nearest neighbors\n",
        "          </li>\n",
        "        </font>\n",
        "      </ul>\n",
        "       در مرحله بعد قسمت دوم دیتاست را به مدل ها به عنوان ورودی داده تا پیش بینی بر روی آن ها صورت گیرد.\n",
        "      با داده های پیش بینی شده توسط مدل ها یک دیتاست جدید ساخته می شود دارای 3 بعد است(به دلیل اینکه 3 مدل در مرحله داشتیم). در مرحله آخر یک مدل نهایی\n",
        "        <font face=\"Roboto\">(final estimator)</font>\n",
        "      برای پیش بینی نهایی با ورودی دیتاست ساخته شده(که دارای 3 بعد است) استفاده می شود:\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 44,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "hFLPL0sUegpi",
        "outputId": "248acbb2-d223-4442-ff6f-6af889a307dc"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.8998659517426274"
            ]
          },
          "metadata": {},
          "execution_count": 44
        }
      ],
      "source": [
        "from sklearn.ensemble import StackingClassifier\n",
        "from sklearn.neighbors import KNeighborsClassifier\n",
        "\n",
        "rf_clf = RandomForestClassifier(n_estimators=10, random_state=42)\n",
        "svm_clf = SVC(random_state=42)\n",
        "knn_clf = KNeighborsClassifier(n_neighbors=3)\n",
        "stacking_clf = StackingClassifier(estimators=[('rf', rf_clf), ('svc', svm_clf), ('knn', knn_clf)], final_estimator=LogisticRegression())\n",
        "stacking_clf.fit(x_train, y_train)\n",
        "y_pred = stacking_clf.predict(x_test)\n",
        "accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 45,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 285
        },
        "id": "RxjJjBE9G-JH",
        "outputId": "c58bcaed-3910-4743-e844-eed1fbc986da"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 432x288 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "show_confusion_matrix(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5hKM-i4z6YJd"
      },
      "source": [
        "\n",
        "  <div dir=rtl id=\"multi-layer-stacking\">\n",
        "  <font face=\"XB Zar\" size=4>\n",
        "      <font color=\"red\" size=5>\n",
        "        <font face=\"Roboto\">\n",
        "          Multi-layer stacking\n",
        "        </font>\n",
        "      </font>\n",
        "      <hr />\n",
        "      با توجه به آنچه در\n",
        "      <a href=\"https://github.com/asharifiz/Introduction_to_Machine_Learning/tree/main/Slides/Chapter_04_Tabular_Data_Models\">اسلاید این فصل</a>\n",
        "      در رابطه با\n",
        "      <font face=\"Roboto\">Multi-layer stacking</font>\n",
        "       گفته شده است، سعی کنید در قسمت زیر یک مدل\n",
        "       <font face=\"Roboto\">Multi-layer stacking</font>\n",
        "      ساخته و درصد دقت و\n",
        "      <font face=\"Roboto\">Confusion matrix</font>\n",
        "      را در دو قسمت بعدی مشاهده کنید.\n",
        "      </font>\n",
        "    </div>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "8mlzb5RCJrpC"
      },
      "outputs": [],
      "source": [
        "# Note: To be able to run the two last cells, the result should be stored in the `y_pred` variable\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "c04lcf_9Jr0e"
      },
      "outputs": [],
      "source": [
        "accuracy_score(y_test, y_pred)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "bYHLnmYcJsFC"
      },
      "outputs": [],
      "source": [
        "show_confusion_matrix(y_test, y_pred)"
      ]
    }
  ],
  "metadata": {
    "colab": {
      "collapsed_sections": [],
      "provenance": []
    },
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.7.12"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}
